// import com.alibaba.druid.sql.ast.SQLExpr_ptr;
// import com.alibaba.druid.sql.ast.SQLName_ptr;
// import com.alibaba.druid.sql.ast.SQLReplaceable;
// import com.alibaba.druid.sql.ast.SQLStatementImpl;
// import com.alibaba.druid.sql.visitor.SQLASTVisitor;
#pragma once
#include "../SQLStatementImpl.h"
#include "SQLShowStatement.h"
#include "../SQLReplaceable.h"

class SQLShowCreateTableStatement 
:virtual public SQLStatementImpl, 
virtual public SQLShowStatement, 
virtual public SQLReplaceable
{
public:
  SQLName_ptr name;
  BOOL_ptr all;

  SQLName_ptr likeMapping; // for DLA

  SHAREDOBJECT(SQLShowCreateTableStatement);
  void accept0(SQLASTVisitor_ptr visitor);

  SQLName_ptr getName();

  void setName(SQLName_ptr name);

  SQLName_ptr getLikeMapping();

  void setLikeMapping(SQLName_ptr likeMapping);

  BOOL_ptr isAll();

  void setAll(BOOL_ptr all);

  // @Override
  BOOL_ptr replace(SQLExpr_ptr expr, SQLExpr_ptr target);
};
